package vista;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Vector;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import modelo.DetalleOrden;
import modelo.Conexion;
import controlador.COrden;

public class VOrden extends JFrame {
	private static final long serialVersionUID = 1L;
	private JTextField txtCodOrden,txtCedula,txtFecha,txtTotal,txtCantidad;
	private JLabel lblCedula,lblTitulo,lblCodOrden,lblFecha,lblTotal,lblCantidad,lbltitList,lblProducto,lblCategoria;
	private JButton btnRegistrar,btnBuscar,btnLimpiar,btnSalir,btnRegProducto,btnRemover;
	private JComboBox jcbProductos,JcbCategorias;
	private JList listaProductos;
	private DefaultListModel listaModel;
	private JScrollPane listaScroolPane;
	private JPanel pnNorte,pnBotones,p1,pnLista1,pnLista2;
	Vector<DetalleOrden> detallesOrden;
	Vector<String> descripcionProducto,descripcionCategorias;
	Conexion BD;
	Vector<String> nombresColumna=new Vector<String>();
	{
	nombresColumna.add("codigo de orden");
	nombresColumna.add("Producto");
	nombresColumna.add("Cantidad");
	}
	// Referencia a controlador
     COrden ctrlOrden;

	//Constructor de la Clase
		public VOrden() {
		detallesOrden=new Vector<DetalleOrden>();
		listaModel=new DefaultListModel();
			try {
			    BD = new Conexion();
				descripcionCategorias=BD.cargarCategorias();
			} catch (SQLException e) {
				e.printStackTrace();
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
			
			
			//categorias=BD.cargarCategorias();
			setTitle(".-.Comida Rapida.-.");
			txtCodOrden= new JTextField(10);
			txtCedula = new JTextField(10);
			txtFecha = new JTextField(10);
			txtTotal = new JTextField(10);
			txtCantidad = new JTextField(3);
			txtTotal.setEditable(false);
			listaProductos=new JList(listaModel);
			listaScroolPane=new JScrollPane(listaProductos);
			//listaScroolPane.setSize(120,60);

			
			DateFormat formato = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("es", "VE"));
			Date fecha = new Date();
			txtFecha.setText(formato.format(fecha));
			lblTitulo = new JLabel(".-. Datos de la orden .-.");
			lblCodOrden = new JLabel("Codigo de Orden:");
			lblCedula = new JLabel("Cedula:                  ");
			lblFecha = new JLabel("Fecha Elaboracion:  ");
			lblTotal = new JLabel("Total:                       ");
			lblCantidad = new JLabel("Cantidad:");
			lbltitList = new JLabel("Pedido :");
			lblProducto = new JLabel("Producto:         ");
			btnRegistrar = new JButton("Registrar ");
			btnRegProducto=new JButton("Agregar Producto");
			btnRemover=new JButton("Remover Producto");
			btnLimpiar = new JButton(" Limpiar");
			btnBuscar = new JButton("Buscar");
			btnSalir = new JButton("    Salir   ");
			lblCategoria=new JLabel("Categoria:         ");
			jcbProductos = new JComboBox();
			jcbProductos.addItem("Seleccione una Categoria");
			jcbProductos.isEditable();
			JcbCategorias =  new JComboBox(descripcionCategorias);
	        inicio();
			
			pnNorte= new JPanel(new GridLayout(7,6));
			
			p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
			p1.add(lblTitulo);
			pnNorte.add(p1);
			
			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			p1.add(lblCodOrden);
			p1.add(txtCodOrden);
			p1.add(btnBuscar);
			pnNorte.add(p1);
			
			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			p1.add(lblCedula);
			p1.add(txtCedula);
			pnNorte.add(p1);
			
			
			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			p1.add(lblFecha);
			p1.add(txtFecha);
			pnNorte.add(p1);
			
			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			p1.add(lblTotal);
			p1.add(txtTotal);
			pnNorte.add(p1);
			

			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			p1.add(lblCategoria);
			p1.add(JcbCategorias);
			p1.add(lblProducto);
			p1.add(jcbProductos);
			p1.add(lblCantidad);
			p1.add(txtCantidad);
			pnNorte.add(p1);
			

		
			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			p1.add(lbltitList);
			pnNorte.add(p1);
			
			pnLista1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			pnLista2= new JPanel(new GridLayout(2,1));
			//pnLista2= new JPanel(new FlowLayout(BorderLayout.NORTH));
			p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
			
			p1.add(listaScroolPane);
			pnLista2.add(btnRegProducto);
			pnLista2.add(btnRemover);
			p1.add(pnLista2);
			pnLista1.add(p1);
		
		
	pnBotones=new JPanel(new GridLayout(1,3));
			
			p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
			p1.add(btnRegistrar);
			p1.add(btnLimpiar);
			p1.add(btnSalir);
			pnBotones.add(p1);
		
			
			add(pnNorte,BorderLayout.NORTH);
			add(pnLista1);
			add(pnBotones,BorderLayout.SOUTH);
			asignarControladora();
			setSize(630,480);
		
	}
	private void asignarControladora() {
		
		ctrlOrden = new COrden(this);
		btnLimpiar.addActionListener(ctrlOrden);
		btnBuscar.addActionListener(ctrlOrden);
		btnSalir.addActionListener(ctrlOrden);
		btnRegistrar.addActionListener(ctrlOrden);
		btnRemover.addActionListener(ctrlOrden);
		btnRegProducto.addActionListener(ctrlOrden);
		JcbCategorias.addActionListener(ctrlOrden);
	}
	public void limpiarCampos(){
		txtCantidad.setText("");
		txtCedula.setText("");
		txtCodOrden.setText("");
		txtTotal.setText("0");
		listaProductos.removeAll();
		txtCodOrden.requestFocus(true);
		desActivar();
			}
	public void desActivar(){
		
		txtCedula.setEditable(false);
		txtCantidad.setEditable(false);
		JcbCategorias.setEnabled(false);
		jcbProductos.setEnabled(false);
		txtFecha.setEditable(false);
		txtCodOrden.setEditable(true);	
		
	}
	public void inicio(){
		btnRegistrar.setEnabled(false);
		btnLimpiar.setEnabled(false);
		btnRemover.setEnabled(false);
		btnRegProducto.setEnabled(false);
	    limpiarCampos();
		
	}
	public JButton getBtnBuscar() {
		return btnBuscar;
	}
	public void setBtnBuscar(JButton btnBuscar) {
		this.btnBuscar = btnBuscar;
	}
	public JButton getBtnLimpiar() {
		return btnLimpiar;
	}
	public void setBtnLimpiar(JButton btnLimpiar) {
		this.btnLimpiar = btnLimpiar;
	}
	public JButton getBtnRegistrar() {
		return btnRegistrar;
	}
	public void setBtnRegistrar(JButton btnRegistrar) {
		this.btnRegistrar = btnRegistrar;
	}
	public JButton getBtnRegProducto() {
		return btnRegProducto;
	}
	public void setBtnRegProducto(JButton btnRegProducto) {
		this.btnRegProducto = btnRegProducto;
	}
	public JButton getBtnRemover() {
		return btnRemover;
	}
	public void setBtnRemover(JButton btnRemover) {
		this.btnRemover = btnRemover;
	}
	public JButton getBtnSalir() {
		return btnSalir;
	}
	public void setBtnSalir(JButton btnSalir) {
		this.btnSalir = btnSalir;
	}
	public JComboBox getJcbCategorias() {
		return JcbCategorias;
	}
	public void setJcbCategorias(JComboBox jcbCategorias) {
		JcbCategorias = jcbCategorias;
	}
	public JComboBox getJcbProductos() {
		return jcbProductos;
	}
	public void setJcbProductos(JComboBox jcbProductos) {
		this.jcbProductos = jcbProductos;
	}
	public JTextField getTxtCantidad() {
		return txtCantidad;
	}
	public void setTxtCantidad(JTextField txtCantidad) {
		this.txtCantidad = txtCantidad;
	}
	public JTextField getTxtCedula() {
		return txtCedula;
	}
	public void setTxtCedula(JTextField txtCedula) {
		this.txtCedula = txtCedula;
	}
	public JTextField getTxtCodOrden() {
		return txtCodOrden;
	}
	public void setTxtCodOrden(JTextField txtCodOrden) {
		this.txtCodOrden = txtCodOrden;
	}
	public JTextField getTxtFecha() {
		return txtFecha;
	}
	public void setTxtFecha(JTextField txtFecha) {
		this.txtFecha = txtFecha;
	}
	public JTextField getTxtTotal() {
		return txtTotal;
	}
	public void setTxtTotal(JTextField txtTotal) {
		this.txtTotal = txtTotal;
	}
	public DefaultListModel getListaModel() {
		return listaModel;
	}
	public void setListaModel(DefaultListModel listaModel) {
		this.listaModel = listaModel;
	}
	public JList getListaProductos() {
		return listaProductos;
	}
	public void setListaProductos(JList listaProductos) {
		this.listaProductos = listaProductos;
	}

	
	
	

}
